開発時にローカルで使うメールテスト環境と言えばMailhogですが、MAMPの無料版で使うことができません(MAMP PROだと簡単に使うことができます)
そこで、手動で使えるように設定したのでその覚書です。やること自体はそれほど難しくありませんが、パスのところで躓いて結構時間がかかりました。ターミナルも使うのでそういうのが苦手な人は素直にPRO版を購入しましょう。
MacにMailHogをインストール
まずはMailHogをインストールします。Homebrewを使う場合は下記コマンドでインストール出来ます。
$ brew install mailhog
ネットで色々調べていると下記コマンドでMac起動時に自動的にMailHogを起動させる方法が記載されています。
$ brew services start mailhog
一定期間集中して開発する場合はこれで良いと思いますが、たまに確認程度でしか使わない場合は毎回起動で良いと思います。その辺りはそれぞれの条件で判断しましょう。
ちなみに自動起動を外す場合は下記のコマンドを使います。
$ brew services stop mailhog
毎回起動する場合はターミナルで下記のように入力するだけです。
$ mailhog
$ mailhog & // バッグラウンドで起動させたい場合
普通に起動するとそのターミナルで他の作業ができなくなるので2行目のように&
をつけてバックグラウンドで起動させるのがおすすめです。また、バックグラウンドを止める場合は例えば次のようにします。
$ jobs
[1] + running mailhog
$ kill %1
jobsでMailHogのジョブ番号を確認してkillしています。
MailHogが無事に起動できるとhttp://127.0.0.1:8025/にアクセスすることでメールの受信画面にアクセスすることができます。
MAMPのphp.iniを編集
次にMAMPのphp.iniの[mail function]の部分を編集しましょう。使用するPHPのバージョンにあったphp.iniを編集する必要があります。
例えば、MAMP 6.8でPHP7.4.33を使う場合、編集するphp.iniは/Application/MAMP/bin/php/php7.4.33/conf/にあります。
php.iniを開いたら[mail function]を探しましょう。下記のような記載があるはずです。
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
この中にある smtp_port の数字を1025に変更し、sendmail_path のコメントを外しパスを追加します。
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 1025 // 数字を変更
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "/opt/homebrew/opt/mailhog/bin/MailHog sendmail" //コメントを外しパスを記載
MailHogのパスはbrewでインストールした場合は/opt/homebrew/opt/mailhog/bin/MailHog
で大丈夫だと思いますが本当に存在するか念のため確認することをお勧めします。
MailHogへのパスは次のコマンドで調べることができます。
$ brew --prefix mailhog
上記パスは実はMailHogへのシンボリックリンクになっていて、本当のパスは下記のようにバージョン番号を含んだものになります。
/opt/homebrew/Cellar/mailhog/1.0.1/bin/MailHog
どちらでも動作しますが将来のバージョンアップのことも考えるとシンボリックリンクの方がトラブルが少なくなると思います。
因みに最初参考にさせていただいた記事(DanHolloran | Setting up Mailhog on MAMP)ではパスが/usr/local/Cellar/mailhog/{VERSION}/bin/MailHog
となっていたのですが、そんな場所はなくて焦りました。Homebrewのインストール先ディレクトリが昔と今では違うのですかね。
以上で設定は完了です。
あとはMAMPを再起動すれば設定が適用されMailHogを使うことができるようになります。
コメント
この記事へのコメントはありません。